package com.doria.consumer.controller.feign;


import com.doria.common.pojo.po.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 *
 * feign声明式接口。发起远程调用的。
 *
 String url = "http://eureka-provider/provider/getUser/"+id;
 User user = restTemplate.getForObject(url, User.class);
 *
 * 1. 定义接口
 * 2. 接口上添加注解 @FeignClient,设置value属性为 服务提供者的 应用名称
 * 3. 编写调用接口，接口的声明规则 和 提供方接口保持一致。
 * 4. 注入该接口对象，调用接口方法完成远程调用
 */
@FeignClient(value = "eureka-provider")
@RequestMapping("/provider")
public interface FeignProviderUserController {

    @GetMapping("/getUser/{id}")
    public ResponseEntity<User> getUser(@PathVariable("id")String id);
}
